package org.bt.common.exception;

import lombok.Getter;
import org.bt.common.enums.ResponseStatus;

/**
 * 运行时异常类
 *
 * @author tongw
 * @date 2021/8/18
 */
public class AppRuntimeException extends RuntimeException {

    /**
     * Http状态码
     */
    @Getter
    private String statusCode = ResponseStatus.INVALID_REQUEST.value();

    /**
     * 错误编码
     */
    @Getter
    private String code;

    /**
     * 构造一个基本异常
     *
     * @param message 信息描述
     */
    public AppRuntimeException(String message) {
        super(message);
    }

    /**
     * 构造一个基本异常
     *
     * @param statusCode Http状态码
     * @param message    信息描述
     */
    public AppRuntimeException(String statusCode, String message) {
        super(message);
        this.statusCode = statusCode;
    }

    /**
     * 构造一个基本异常
     *
     * @param message 信息描述
     * @param cause   根异常类（可以存入任何异常）
     */
    public AppRuntimeException(String message, Throwable cause) {
        super(message, cause);
    }

    /**
     * 构造一个基本异常
     *
     * @param code    错误编码
     * @param message 信息描述
     * @param cause   根异常类（可以存入任何异常）
     */
    public AppRuntimeException(String code, String message, Throwable cause) {
        super(message, cause);
        this.code = code;
    }
}
